.\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md
.TH "RDMA_RESOLVE_ADDR" 3 "2007-10-31" "librdmacm" "Librdmacm Programmer's Manual" librdmacm
.SH NAME
rdma_resolve_addr \- Resolve destination and optional source addresses.
.SH SYNOPSIS
.B "#include <rdma/rdma_cma.h>"
.P
.B "int" rdma_resolve_addr
.BI "(struct rdma_cm_id *" id ","
.BI "struct sockaddr *" src_addr ","
.BI "struct sockaddr *" dst_addr ","
.BI "int " timeout_ms ");"
.SH ARGUMENTS
.IP "id" 12
RDMA identifier.
.IP "src_addr" 12
Source address information.  This parameter may be NULL.
.IP "dst_addr" 12
Destination address information.
.IP "timeout_ms" 12
Time to wait for resolution to complete.
.SH "DESCRIPTION"
Resolve destination and optional source addresses from IP addresses
to an RDMA address.  If successful, the specified rdma_cm_id will
be bound to a local device.
.SH "RETURN VALUE"
Returns 0 on success, or -1 on error.  If an error occurs, errno will be
set to indicate the failure reason.
.SH "NOTES"
This call is used to map a given destination IP address to a usable RDMA
address.  The IP to RDMA address mapping is done using the local routing
tables, or via ARP.
If a source address is given, the rdma_cm_id is bound to that
address, the same as if rdma_bind_addr were called.  If no source
address is given, and the rdma_cm_id has not yet been bound to a device,
then the rdma_cm_id will be bound to a source address based on the
local routing tables.  After this call, the rdma_cm_id will be bound to
an RDMA device.  This call is typically made from the active side of a
connection before calling rdma_resolve_route and rdma_connect.
.SH "INFINIBAND SPECIFIC"
This call maps the destination and, if given, source IP addresses to GIDs.
In order to perform the mapping, IPoIB must be running on both the local
and remote nodes.
.SH "SEE ALSO"
rdma_create_id(3), rdma_resolve_route(3), rdma_connect(3), rdma_create_qp(3),
rdma_get_cm_event(3), rdma_bind_addr(3), rdma_get_src_port(3),
rdma_get_dst_port(3), rdma_get_local_addr(3), rdma_get_peer_addr(3)
